home *** CD-ROM | disk | FTP | other *** search
- //: C24:ConstructorOrder.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Order of constructor calls
- #include <iostream>
- #include <typeinfo>
- using namespace std;
-
- template<int id> class Announce {
- public:
- Announce() {
- cout << typeid(*this).name()
- << " constructor " << endl;
- }
- ~Announce() {
- cout << typeid(*this).name()
- << " destructor " << endl;
- }
- };
-
- class X : public Announce<0> {
- Announce<1> m1;
- Announce<2> m2;
- public:
- X() { cout << "X::X()" << endl; }
- ~X() { cout << "X::~X()" << endl; }
- };
-
- int main() { X x; } ///:~
-